﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Etna.Exportaciones.Rn;
using Etna.Exportaciones.En;

namespace WebExportaciones
{
    public partial class frmLista_Solicitud : System.Web.UI.Page
    {

        protected List<EnSolicitudAtencion> listaSolicitudAtencion;
        private EnCliente cliente;
        private RnCliente rnCliente;
        RnSolicitudAtencion rnSolicitudAtencion;
        private int iPaginaActual;
        private int iTotalPaginas;
        private int iPaginaInicial;
        private bool bDirectoPagina;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                rnCliente = new RnCliente();
                rnSolicitudAtencion = new RnSolicitudAtencion();

                this.cliente = rnCliente.Leer(2);
                listaSolicitudAtencion = rnSolicitudAtencion.Listar(cliente.idCliente);
                hdfPaginaActual.Value = "0";
                Session["ContenidoGrilla"] = listaSolicitudAtencion;
                Session["Usuario"] = cliente;
                EnlazarGridView();
            }
            else
            {

                listaSolicitudAtencion = (List<EnSolicitudAtencion>)Session["ContenidoGrilla"];
            }

        }

        protected void AccionBuscar(object sender, EventArgs e)
        {
            Buscar();
        }

        void Buscar()
        {
           int valor;
           lblMensajeError.Text = "";

           int pidSolicitud = 0;
           int pidRequerimiento = 0;
           string pRucCliente = null;
           string pRazSocialCliente = null;
           int pidEstado = 0;
           string pdfechaDesde = "";
           string pdfechaHasta = "";
          

           if (int.TryParse(txtNumSolicitud.Text, out valor))
           {
               if (int.Parse(txtNumSolicitud.Text) == 0)
               {
                   lblMensajeError.Text = "El valor ingresado debe ser numérico y mayor a 0. Por favor revisar.";
                   txtNumSolicitud.Focus();
                   return;
               }
               else
               {
                   pidSolicitud = int.Parse(txtNumSolicitud.Text);
               }
           }

           if (int.TryParse(txtNumRequerimiento.Text, out valor))
           {
               if (int.Parse(txtNumRequerimiento.Text) == 0)
               {
                   lblMensajeError.Text = "El valor ingresado debe ser numérico y mayor a 0. Por favor revisar.";
                   txtNumRequerimiento.Focus();
                   return;
               }
               else
               {
                   pidRequerimiento = int.Parse(txtNumRequerimiento.Text);
               }
           }

           if (!string.IsNullOrEmpty(txtRucCliente.Text))
           {
               pRucCliente = txtRucCliente.Text;
           }

           if (!string.IsNullOrEmpty(txtRazSocialCliente.Text))
           {
               pRazSocialCliente = txtRazSocialCliente.Text;
           }

           if (!string.IsNullOrEmpty(txtFechaDesde.Text))
           {
               pdfechaDesde = txtFechaDesde.Text;
           }

           if (!string.IsNullOrEmpty(txtFechaHasta.Text))
           {
               pdfechaHasta = txtFechaHasta.Text;
           }

           if (int.Parse(ddlEstadoSolictud.SelectedValue) > 0)
           {
               pidEstado = int.Parse(ddlEstadoSolictud.DataValueField);
           }

           CargarGrillaDesdeBD(pidSolicitud, pidRequerimiento, pRucCliente, pRazSocialCliente, pidEstado, pdfechaDesde, pdfechaHasta );          

        }

        void CargarGrillaDesdeBD(int pidSolicitud = 0,
                                      int pidRequerimiento = 0,
                                        string pRucCliente = null,
                                        string pRazSocialCliente = null,
                                        int pidEstado = 0,
                                        String pdfechaDesde = "",
                                        String pdfechaHasta = "")
        {
            rnSolicitudAtencion = new RnSolicitudAtencion();
            listaSolicitudAtencion = rnSolicitudAtencion.Listar(pidSolicitud, pidRequerimiento, pRucCliente, pRazSocialCliente, pidEstado, pdfechaDesde, pdfechaHasta);
            hdfPaginaActual.Value = "0";
            Session["ContenidoGrilla"] = listaSolicitudAtencion;
            gvSolicitud.PageIndex = 0;
            EnlazarGridView();
        }


        protected void AccionNuevo(object sender, EventArgs e)
        {
            
        }

        protected void Paginar(object sender, EventArgs e)
        {
            
        }

        protected void gvSolicitud_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            
        }

        protected void gvSolicitud_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void gvSolicitud_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {

        }

        protected void EventoTecladoTxtPagina(object sender, EventArgs e)
        {
           
        }

        private void EnlazarGridView()
        {
            int iPosicion;

            if (listaSolicitudAtencion != null)
            {
                gvSolicitud.DataSource = listaSolicitudAtencion;
                gvSolicitud.DataBind();

                iPaginaActual = int.Parse(hdfPaginaActual.Value);
                iTotalPaginas = gvSolicitud.PageCount;
                iPaginaInicial = (int)Math.Floor((double)(iPaginaActual / 5)) * 5;
                iPosicion = iPaginaActual - iPaginaInicial;
                lblTotalRegistros.Text = listaSolicitudAtencion.Count.ToString();
            }
            else
            {
                iPaginaActual = 0;
                iTotalPaginas = 0;
                iPaginaInicial = 0;
                iPosicion = 0;
                lblTotalRegistros.Text = "0";
            }

            lblTotalPaginas.Text = iTotalPaginas.ToString();

            // Boton 1
            if (iPaginaInicial + 1 > iTotalPaginas)
            {
                btnPagina1.Visible = false;
            }
            else
            {
                btnPagina1.Visible = true;
                btnPagina1.Text = (iPaginaInicial + 1).ToString();
                btnPagina1.CommandArgument = iPaginaInicial.ToString();
                if (iPosicion == 0)
                {
                    btnPagina1.ForeColor = System.Drawing.Color.White;
                    btnPagina1.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                }
                else
                {
                    btnPagina1.ForeColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                    btnPagina1.BackColor = System.Drawing.Color.White;
                }
            }
            // Boton 2
            if (iPaginaInicial + 2 > iTotalPaginas)
            {
                btnPagina2.Visible = false;
            }
            else
            {
                btnPagina2.Visible = true;
                btnPagina2.Text = (iPaginaInicial + 2).ToString();
                btnPagina2.CommandArgument = (iPaginaInicial + 1).ToString();
                if (iPosicion == 1)
                {
                    btnPagina2.ForeColor = System.Drawing.Color.White;
                    btnPagina2.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                }
                else
                {
                    btnPagina2.ForeColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                    btnPagina2.BackColor = System.Drawing.Color.White;
                }
            }
            // Boton 3
            if (iPaginaInicial + 3 > iTotalPaginas)
            {
                btnPagina3.Visible = false;
            }
            else
            {
                btnPagina3.Visible = true;
                btnPagina3.Text = (iPaginaInicial + 3).ToString();
                btnPagina3.CommandArgument = (iPaginaInicial + 2).ToString();
                if (iPosicion == 2)
                {
                    btnPagina3.ForeColor = System.Drawing.Color.White;
                    btnPagina3.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                }
                else
                {
                    btnPagina3.ForeColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                    btnPagina3.BackColor = System.Drawing.Color.White;
                }
            }
            // Boton 4
            if (iPaginaInicial + 4 > iTotalPaginas)
            {
                btnPagina4.Visible = false;
            }
            else
            {
                btnPagina4.Visible = true;
                btnPagina4.Text = (iPaginaInicial + 4).ToString();
                btnPagina4.CommandArgument = (iPaginaInicial + 3).ToString();
                if (iPosicion == 3)
                {
                    btnPagina4.ForeColor = System.Drawing.Color.White;
                    btnPagina4.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                }
                else
                {
                    btnPagina4.ForeColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                    btnPagina4.BackColor = System.Drawing.Color.White;
                }
            }
            // Boton 5
            if (iPaginaInicial + 5 > iTotalPaginas)
            {
                btnPagina5.Visible = false;
            }
            else
            {
                btnPagina5.Visible = true;
                btnPagina5.Text = (iPaginaInicial + 5).ToString();
                btnPagina5.CommandArgument = (iPaginaInicial + 4).ToString();
                if (iPosicion == 4)
                {
                    btnPagina5.ForeColor = System.Drawing.Color.White;
                    btnPagina5.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                }
                else
                {
                    btnPagina5.ForeColor = System.Drawing.ColorTranslator.FromHtml("#FF6600");
                    btnPagina5.BackColor = System.Drawing.Color.White;
                }
            }
        }
    }
}
